﻿using FunctionalCLR.Core;

namespace Zove.Compiler.EquationTransformer
{
    /// <summary>
    /// Transforms a tree to evaluate a specified variable
    /// </summary>
    public interface IEquationTransformer
    {
        /// <summary>
        /// Transforms a tree to evaluate a specified variable
        /// </summary>
        /// <param name="node">the variable to be evaluated</param>
        /// <param name="tree">the expression tree contains the given variable</param>
        /// <param name="to">the expression to evaluate the given variable</param>
        /// <returns></returns>
        Node Transform(string node, Node tree, Node to);
    }
}
